﻿@* Quitar esta sección si se utilizan agrupaciones *@
@section Scripts {
    <script src="~/Scripts/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
}
@{
    Layout = "~/_SiteLayout.cshtml";
    Page.Title = "Editar grupo electoral";

    if (!WebSecurity.IsAuthenticated)
    {
        Response.Redirect("../Account/login.cshtml");
    }

    if (Request.QueryString["id"] != null)
    {
            Session["id_grupo_consecutivo"] = Request.QueryString["id"];
            Session["estado_grupo_consecutivo"] = Request.QueryString["act"];
    }
    else
    {
        Response.Redirect("ConsultarGrupoElectoral.cshtml");
    }

    // Inicializar variables de página generales
    var Txt_grupo_electoral = "";
    var Cbo_estado = "";

    // Validación de la instalación
    Validation.RequireField("Txt_grupo_electoral", "Debe especificar un nombre para el grupo electoral");
    Validation.RequireField("Cbo_estado", "Debe seleccionar un estado para el grupo electoral");
    Validation.Add("Txt_grupo_electoral",
        Validator.StringLength(
            maxLength: 100,
            minLength: 5,
            errorMessage: "El Grupo electoral debe tener al menos cinco caracteres"));

    // Si esta es una solicitud  POST , valide y procese los datos
    if (IsPost)
    {
        AntiForgery.Validate();
        Txt_grupo_electoral = Request.Form["Txt_grupo_electoral"];
        Cbo_estado = Request.Form["Cbo_estado"];

        if (Cbo_estado.IsEmpty() || Cbo_estado.ToString().Trim() == "0")
        {
            ModelState.AddError("Cbo_estado", "Seleccione el estado para grupo electoral");
        }

        if (Validation.IsValid() && ModelState.IsValid)
        {
            bool Val_estado = false;
            if (Cbo_estado == "1")
            {
                Val_estado = true;
            }

            GrupoElectoral Obj_grupo = new GrupoElectoral();
            Obj_grupo.ObjGrupoElectoral.nombre = Txt_grupo_electoral;
            bool valida_actualizacion = false;

            if (Session["nom_grup_elec"].ToString().Trim().ToUpper() != Txt_grupo_electoral.Trim().ToUpper())
            {
                var mylista = Obj_grupo.consultar(1);
                if (mylista == null || mylista.Count > 0)
                {
                    valida_actualizacion = true;
                }

                Obj_grupo.ObjGrupoElectoral.estado = true;
                mylista = Obj_grupo.consultar(1);
                if (mylista == null || mylista.Count > 0)
                {
                    valida_actualizacion = true;
                }                
            }

            if (!valida_actualizacion)
            {                
                Obj_grupo.ObjGrupoElectoral.id_grupo_electoral = int.Parse(Session["id_grupo_consecutivo"].ToString());
                Obj_grupo.ObjGrupoElectoral.estado = Val_estado;
                
                Obj_grupo.modificar();
                Session["estado_grupo_consecutivo"] = Val_estado;                  
                @: El grupo electoral ha sido Actualizado!!                
            }
            else
            {
                ModelState.AddFormError("El Grupo electoral ya existe en el sistema, cambie el nombre");
            }
        }
    }
}
@if (!User.IsInRole("Admin"))
{
    ModelState.AddError("errorGeneral", "El usuario: " + User.Identity.Name + " NO tiene permisos sobre este formulario.");
    @Html.ValidationMessage("errorGeneral")
}
else
{  
    <form method="post">
    @AntiForgery.GetHtml()
    @* Si existe al menos un error de validación, informar al usuario *@
    @Html.ValidationSummary("No se creó el grupo electoral. Corrija los errores e inténtelo de nuevo.", excludeFieldErrors: true, htmlAttributes: null)
    @{
    GrupoElectoral Obj_GrupoElectoral = new GrupoElectoral();
    Obj_GrupoElectoral.ObjGrupoElectoral.id_grupo_electoral = int.Parse(Session["id_grupo_consecutivo"].ToString());
    Obj_GrupoElectoral.ObjGrupoElectoral.estado = bool.Parse(Session["estado_grupo_consecutivo"].ToString());
    var mylista_info = Obj_GrupoElectoral.filtrar(1);
    Session["nom_grup_elec"] = mylista_info[0].nombre;    
    }
    <fieldset>
        <legend>Formulario de registro Grupo electoral</legend>
        <ol>
            <li class="email">
                <label for="Txt_grupo_electoral" @if (!ModelState.IsValidField("Txt_grupo_electoral"))
                                                 {<text> class="error-label" </text>              }>
                    Grupo electoral</label>
                @if (!IsPost)
                {
                    <input type="text" id="Txt_grupo_electoral" name="Txt_grupo_electoral" maxlength="100" value="@mylista_info[0].nombre" @Validation.For("Txt_grupo_electoral") />
                }
                else
                {
                    <input type="text" id="Txt_grupo_electoral" name="Txt_grupo_electoral" maxlength="100" value="@Request["Txt_grupo_electoral"]" @Validation.For("Txt_grupo_electoral") />
                }
                @* Escribir los errores de validación del correo electrónico en la página *@
                @Html.ValidationMessage("Txt_grupo_electoral")
            </li>
            <li class="email">
                <label for="Cbo_estado" @if (!ModelState.IsValidField("Cbo_estado"))
                                        {<text> class="error-label" </text>              }>
                    Estado</label>
                <select id="Cbo_estado" name="Cbo_estado" @Validation.For("Cbo_estado")>
                    @if (!IsPost)
                    {
                        if (mylista_info[0].estado == true)
                        {
                        <option value="0">Seleccione</option>
                        <option value="1" selected="selected">Activo</option>
                        <option value="-1">Inactivo</option>
                        }
                        else
                        {
                        <option value="0">Seleccione</option>
                        <option value="1">Activo</option>
                        <option value="-1" selected="selected">Inactivo</option>
                        }
                    }
                    else
                    {
                        if (Request["Cbo_estado"] != null)
                        {
                            if (Request["Cbo_estado"].ToString() == "1")
                            {
                        <option value="0">Seleccione</option>
                        <option value="1" selected="selected">Activo</option>
                        <option value="-1">Inactivo</option>
                            }
                            else
                            {
                                if (Request["Cbo_estado"].ToString() == "-1")
                                {
                        <option value="0">Seleccione</option>
                        <option value="1">Activo</option>
                        <option value="-1" selected="selected">Inactivo</option>                                        
                                }
                                else
                                {
                        <option value="0" selected="selected">Seleccione</option>
                        <option value="1">Activo</option>
                        <option value="-1">Inactivo</option>                                                                                    
                                }
                            }
                        }
                    }
                </select>
                @* Escribir los errores de validación del correo electrónico en la página *@
                @Html.ValidationMessage("Cbo_estado")
            </li>
        </ol>
        <input type="submit" value="Actualizar" />
    </fieldset>
    </form>
}
